package com.itlong.cloud.operate.dao;

import com.itlong.cloud.POJO.PO.PaperPO;
import com.itlong.cloud.POJO.VO.operate.OperatePaperGetVO;
import com.itlong.cloud.abstracts.IAbstractBaseDao;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * <desc>
 *      说明书管理持久层对象
 * </desc>
 *
 * @createDate 2018/06/27
 */
@Mapper
@Repository
public interface IOperatePaperDao extends IAbstractBaseDao<PaperPO> {

    /**
     * <desc>
     *     分页查询说明书信息
     * </desc>
     *
     * @param params 查询参数Map对象
     * @return 分页查询结果集合
     * @author wangzhi
     * @createDate 2018/06/27
     */
    List<OperatePaperGetVO> getPapersByPage(Map<String,Object> params);

    /**
     * <desc>
     *     查询说明书总记录数
     * </desc>
     *
     * @param params 查询参数Map对象
     * @return 说明书总记录数
     * @author wangzhi
     * @createDate 2018/06/27
     */
    Integer getPapersRecordCount(Map<String,Object> params);

    /**
     * <desc>
     *      精确查询单个说明书信息
     * </desc>
     *
     * @param params 查询参数Map对象
     * @return 单个结果查询对象
     * @author wangzhi
     * @createDate 2018/06/28
     */
    OperatePaperGetVO getOnePaper(Map<String, Object> params);

    /**
     * <desc>
     *      保存单个说明书信息
     * </desc>
     *
     * @param params 保存的参数
     * @return 受影响的行数
     * @author wangzhi
     * @createDate 2018/06/28
     */
    Integer save(Map<String,Object> params);

    /**
     * <desc>
     *      修改单个说明书信息
     * </desc>
     *
     * @param params 修改的参数
     * @return 受影响的行数
     * @author wangzhi
     * @createDate 2018/06/29
     */
    Integer update(Map<String,Object> params);

    /**
     * <desc>
     *      删除说明书信息
     * </desc>
     *
     * @param paperId 说明书id
     * @return 受影响的行数
     * @author wangzhi
     * @createDate 2018/06/29
     */
    Integer deletePaper(@Param("paperId") String paperId);
}
